// hello.asm
section data                                            // 数据段声明
    const HELLO:string("Hello, world!\n")               // 定义常量字符串
    const PI:int(31415926)                              // 定义常量整形值

    var msg:string(value:"Hello, world!\n")             // 定义变量字符串
    var len:int($ - msg)                                // 定义变量整形值
    var ai:int(size:16),bi:int(size:16),ci:int          // 定义变量整形值(规定字节长度)
    
    slot name:string                                    // 定义存储字符串
    slot value:int                                      // 定义存储字符串
    slot as:int(size:16),bs:int(size:32),cs:int         // 定义存储字符串(规定字节长度, 共用一个存储插槽)

section call
add(a:int, b:int)int:                                   // 定义add函数
    local c:int                                         // 定义局部变量

    add a, b                                            // 调用加指令
    store c                                             // 局部变量赋值
    return c                                            // 函数返回

section text                                            // 代码段声明
    local a:int(value:0x12)                             // 定义局部变量
    local b:int(value:0x34)                             // 定义局部变量
    local c:int                                         // 定义局部变量

    add(a, b)                                           // 调用add函数
    store c                                             // 局部变量赋值
    test(a, b)                                          // 调用test函数
    return c                                            // 返回

test(a:int, b:int):
    add a, b
    print

// @return 0x0000000000000000000000000000000000000000000000000000000000000046